LoadStringA 関数 (winuser.h) |
您所在的位置:网站首页 › errorathookingapi loadstringa › LoadStringA 関数 (winuser.h) |
LoadStringA 関数 (winuser.h)
[アーティクル]12/09/2023
指定したモジュールに関連付けられている実行可能ファイルから文字列リソースを読み込み、終端の null 文字を持つバッファーに文字列をコピーするか、文字列リソース自体への読み取り専用ポインターを返します。 構文 int LoadStringA( [in, optional] HINSTANCE hInstance, [in] UINT uID, [out] LPSTR lpBuffer, [in] int cchBufferMax ); パラメーター[in, optional] hInstance 種類: HINSTANCE 実行可能ファイルに文字列リソースが含まれているモジュールのインスタンスへのハンドル。 アプリケーション自体へのハンドルを取得するには、NULL を指定して GetModuleHandle 関数を呼び出します。 [in] uID 型: UINT 読み込む文字列の識別子。 [out] lpBuffer 種類: LPTSTR 文字列を受け取るバッファー。 cchBufferMax 文字以上のサイズにする必要があります。 [in] cchBufferMax 型: int バッファーのサイズ (文字単位)。 指定した文字数より長い場合、文字列は切り捨てられ、null で終わる。 このパラメーターをゼロにすることはできません。 戻り値型: int 関数が成功した場合、戻り値はバッファーにコピーされた文字数であり、終端の null 文字は含まれません。 文字列リソースが存在しない場合、戻り値は 0 になります。 詳細なエラー情報を得るには、GetLastError を呼び出します。 解説LoadStringW 関数とは異なり、LoadStringA 関数は cchBufferMax に 0 の値を渡すことをサポートしていません。 これにより、メモリが破損します。 セキュリティに関する備考 この関数を誤って使用すると、アプリケーションのセキュリティが損なわれる可能性があります。 不適切な使用には、 cchBufferMax パラメーターで間違ったサイズを指定することが含まれます。 たとえば、lpBuffer が としてTCHAR szBuffer[100]宣言されているバッファー szBuffer を指している場合、sizeof(szBuffer) はバッファーのサイズをバイト単位で指定します。これにより、Unicode バージョンの関数のバッファー オーバーフローが発生する可能性があります。 バッファー オーバーフローの状況は、アプリケーションの多くのセキュリティ問題の原因です。 この場合、 または sizeof(szBuffer)/sizeof(szBuffer[0]) を使用するとsizeof(szBuffer)/sizeof(TCHAR)、バッファーの適切なサイズが得られます。 例例については、「子ウィンドウの作成」を参照してください。 注意 winuser.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして LoadString を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。 要件 サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ] サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ] 対象プラットフォーム Windows ヘッダー winuser.h (Windows.h を含む) Library User32.lib [DLL] User32.dll 関連項目概念 FormatMessage LoadAccelerators LoadBitmap LoadCursor LoadIcon LoadMenu LoadMenuIndirect その他のリソース リファレンス 文字列 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |